Computer operating systems typically have a shell that provides a graphical user interface (GUI) to an end-user. The shell consists of one or a combination of software components that provide direct communication between the user and the operating system. The graphical user interface typically provides a graphical icon-oriented and/or menu driven environment for the user to interact with the operating system and will be often based on a “desktop” metaphor. The GUI environment typically occupies the entire surface of a single display device, extends to a “virtual window” comprising an area larger than the display device but is restricted to displaying what fits within the devices active area, may span multiple display devices, and hosts subordinate user interface objects such as icons, menus, cursors, and windows. Among the types of rendered objects hosted by the GUI environment are visually delineated areas of the screen known as windows. A window will be typically dedicated to a unique user activity and will be created and managed by either a third-party software application or a system application. Each window behaves and displays its content independently as if it were a virtual display device under control of its particular application program. Windows can typically be interactively resized, moved around the display, and arranged in stacked order so as to fully or partially overlap one another by the user. In some windowing environments, a window can assume discreet visual or behavioral states, such as minimized in size to an icon or maximized in size to occupy the entire display surface.
Conventionally, the size and shape of the active area will be fixed at startup and cannot be dynamically changed. A single, selected window has the “focus” at any given time and will be receptive to the user's input. The user can direct input focus to another window by clicking the window with a mouse or other pointer device or by employing a system-defined keyboard shortcut or key combination. This allows the user to work efficiently with multiple application programs, files, and documents in a manner similar to the real world scenario of managing paper documents and other items which can be arbitrarily stacked or arranged on a physical desktop.
Current dynamic window managers tile the display environment with windows based on preset layouts. The user may manually switch between these layouts. Layouts typically have master and slave areas. The master area shows one window but will be not restricted to such. The area within the master window will be not affected by other windows opening in the GUI. New windows open in the slave area. The master and slave windows may be configured to allow some of the GUI area or desktop to be visible.